package threading;


//通常使用这种lambda方式来创建 Runnable 子类对象
public class ThreadDemo5 {

    private static boolean isQuit = false;  //此时要注意变量捕获问题，查看之前的课件

    public static void main(String[] args) {
        Thread t = new Thread( () -> {
            while (!isQuit) {               //此时要注意变量捕获问题，查看之前的课件
                System.out.println("hello t");
                try {
                    // sleep 被 static修饰，不需要创建对象，通过对象的引用来调用，
                    // 直接通过类名.sleep()的方式来调用
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("进程结束");
        });

        t.start();
        //在主线程中进行修改isQuit变量，此时要注意变量捕获问题，查看之前的课件
        System.out.println("hello main");
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        isQuit = true;
    }
}
